package com.tuniu.agents.command;

/**
 * Command Factory Interface
 * Used to create command objects based on configuration
 */
public interface CommandFactory {

    /**
     * Creates a command object based on the configuration
     *
     * @param config Command configuration
     * @return Command object
     */
    Command createCommand(CommandConfig config);

    /**
     * Retrieves a matcher object by name
     *
     * @param matchName Matcher name
     * @return Matcher object
     */
    CommandMatch getMatch(String matchName);

    /**
     * Retrieves an action object by name
     *
     * @param actionName Action name
     * @return Action object
     */
    CommandAction getAction(String actionName);
} 